package com.iotmonitor.iot.service;


import com.iotmonitor.iot.domain.TbGps;
import com.iotmonitor.iot.domain.dto.DeviceFullInfo;
import com.iotmonitor.iot.domain.dto.DeviceLocation;

import java.util.List;
import java.util.Map;

/**
 * GPS配置Service接口
 * 
 * @author ruoyi
 * @date 2023-08-11
 */
public interface ITbGpsService 
{
    /**
     * 查询GPS配置
     * 
     * @param id GPS配置主键
     * @return GPS配置
     */
    public TbGps selectTbGpsById(Long id);

    /**
     * 查询GPS配置列表
     * 
     * @param tbGps GPS配置
     * @return GPS配置集合
     */
    public List<TbGps> selectTbGpsList(TbGps tbGps);

    /**
     * 新增GPS配置
     * 
     * @param tbGps GPS配置
     * @return 结果
     */
    public int insertTbGps(TbGps tbGps);

    /**
     * 修改GPS配置
     * 
     * @param tbGps GPS配置
     * @return 结果
     */
    public int updateTbGps(TbGps tbGps);

    /**
     * 批量删除GPS配置
     * 
     * @param ids 需要删除的GPS配置主键集合
     * @return 结果
     */
    public int deleteTbGpsByIds(Long[] ids);

    /**
     * 删除GPS配置信息
     * 
     * @param id GPS配置主键
     * @return 结果
     */
    public int deleteTbGpsById(Long id);

    List<DeviceFullInfo> getDeviceFullInfo(Double lat, Double lon, Integer distance);

    TbGps getGps();

    /**
     * 分析gps
     * @param topic
     * @param payloadMap
     * @return
     */
    DeviceLocation analysis(String topic, Map<String,Object> payloadMap);
}
